﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HMS_Hospital_Team2._6.BL;
using HMS_Hospital_Team2._6.DA;
using HMS_Hospital_Team2._6.GUI.Report;
using DevExpress.Utils;

namespace HMS_Hospital_Team2._6.GUI
{
    public partial class UcThongkedoanhthu : UserControl
    {
        public UcThongkedoanhthu()
        {
            InitializeComponent();
        }
        // truy xuất BL
        PhongBanBL pb = new PhongBanBL();
        HoaDonBL hd = new HoaDonBL();
        // khai báo biến danh dau và biến check
        int danhdau;
        string mapb = "";
        string madv = "";
        int icheck;
        bool checkall;
        // Xử lý radio Ngày
        private void rdNgay_Thongkedoanhthu_CheckedChanged(object sender, EventArgs e)
        {
            if (rdNgay_Thongkedoanhthu.Checked == true)
            {
                //Loaddata();
                dateNgay_Thongkedoanhthu.Enabled = true;
                rdKhoangngay_Thongkedoanhthu.Checked = false;
                rdThang_Thongkedoanhthu.Checked = false;
                cmbThang_Thongkedoanhthu.Enabled = false;
                cmbNam.Enabled = false;
                dateTu_Thongkedoanhthu.Enabled = false;
                dateDen_Thongkedoanhthu.Enabled = false;
                cmbThang_Thongkedoanhthu.Text = "1";
                dateDen_Thongkedoanhthu.Text = "";
                dateTu_Thongkedoanhthu.Text = "";
                danhdau = 1;
            }
        }
        // Xử lý radio Tháng
        private void rdThang_Thongkedoanhthu_CheckedChanged(object sender, EventArgs e)
        {
            if (rdThang_Thongkedoanhthu.Checked == true)
            {
                //Loaddata();
                cmbNam.Enabled = true;
                for (int i = 1; i <= 12; i++)
                {
                    cmbThang_Thongkedoanhthu.Items.Add(i);
                }
                for (int i = 1900; i <= DateTime.Now.Year; i++)
                {
                    cmbNam.Items.Add(i);
                }
                rdNgay_Thongkedoanhthu.Checked = false;
                rdKhoangngay_Thongkedoanhthu.Checked = false;
                dateNgay_Thongkedoanhthu.Enabled = false;
                dateTu_Thongkedoanhthu.Enabled = false;
                dateDen_Thongkedoanhthu.Enabled = false;
                cmbThang_Thongkedoanhthu.Enabled = true;
                dateNgay_Thongkedoanhthu.Text = "";
                dateTu_Thongkedoanhthu.Text = "";
                dateDen_Thongkedoanhthu.Text = "";
                danhdau = 2;
            }
        }
        // Xử lý radio Khoảng ngày
        private void rdKhoangngay_Thongkedoanhthu_CheckedChanged(object sender, EventArgs e)
        {
            if (rdKhoangngay_Thongkedoanhthu.Checked == true)
            {
                // Loaddata();
                rdNgay_Thongkedoanhthu.Checked = false;
                rdThang_Thongkedoanhthu.Checked = false;
                dateNgay_Thongkedoanhthu.Enabled = false;
                dateTu_Thongkedoanhthu.Enabled = true;
                dateDen_Thongkedoanhthu.Enabled = true;
                cmbThang_Thongkedoanhthu.Enabled = false;
                cmbNam.Enabled = false;
                cmbThang_Thongkedoanhthu.Text = "1";
                dateNgay_Thongkedoanhthu.Text = "";
                danhdau = 3;
            }
        }
        // Hàm load data lên girdview thống kê doanh thu
        private void UcThongkedoanhthu_Load(object sender, EventArgs e)
        {
            // Hàm load data lên gridview chính
            //Loaddata();
            grcNhomDV_Thongkedoanhthu.Enabled = false;
            grcDonvithungan_Thongkedoanhthu.Enabled = false;
            grcThoigianbaocao_Thongkedoanhthu.Enabled = false;
            grbDanhsachhoadon_Thongkedoanhthu.Enabled = false;
            dateNgay_Thongkedoanhthu.Enabled = false;
            cmbThang_Thongkedoanhthu.Enabled = false;
            cmbNam.Enabled = false;
            dateTu_Thongkedoanhthu.Enabled = false;
            dateDen_Thongkedoanhthu.Enabled = false;
            cmbThang_Thongkedoanhthu.Text = "1";
            // Hàm load data lên combobox Nhóm dịch vụ
            cmbNhomDichVu_Thongkedoanhthu.DataSource = hd.LoadthongtinNhomDV_BL();
            cmbNhomDichVu_Thongkedoanhthu.DisplayMember = "TenNhomDV";
            cmbNhomDichVu_Thongkedoanhthu.ValueMember = "MaNhomDV";
            cmbNhomDichVu_Thongkedoanhthu.SelectedItem = null;
            // Hàm load data lên combobox Đơn vị thu tiền


        }
        // -----------NHÓM DỊCH VỤ---------------
        // Hàm load Thống kê theo NGÀY lên gridcontrol(Nhóm dịch vụ)
        void ThongKeTheoNgayndv()
        {
            int iday = dateNgay_Thongkedoanhthu.DateTime.Day;
            int imonth = dateNgay_Thongkedoanhthu.DateTime.Month;
            int iyear = dateNgay_Thongkedoanhthu.DateTime.Year;
            madv = cmbNhomDichVu_Thongkedoanhthu.SelectedValue.ToString();// get mã Dịch vụ 
            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuNhomDV_Ngay_BL(iday, imonth, iyear, madv);
        }
        // Hàm load Thống kê theo THÁNG lên gridcontrol(Nhóm dịch vụ)
        void ThongketheoThangndv()
        {
            int month;
            int iYear;
            iYear = Int32.Parse(cmbNam.Text);
            month = Int32.Parse(cmbThang_Thongkedoanhthu.Text);
            madv = cmbNhomDichVu_Thongkedoanhthu.SelectedValue.ToString();// get mã Dịch vụ 
            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuNhomDV_Thang_BL(month, madv,iYear);
        }
        // Hàm load Thống kê theo KHOẢNG NGÀY lên gridcontrol(Nhóm dịch vụ)
        void ThongKeKhoangNgayndv()
        {
            int fromday = dateTu_Thongkedoanhthu.DateTime.Day;
            int frommonth = dateTu_Thongkedoanhthu.DateTime.Month;
            int fromyear = dateTu_Thongkedoanhthu.DateTime.Year;
            int today = dateDen_Thongkedoanhthu.DateTime.Day;
            int tomonth = dateDen_Thongkedoanhthu.DateTime.Month;
            int toyear = dateDen_Thongkedoanhthu.DateTime.Year;
            madv = cmbNhomDichVu_Thongkedoanhthu.SelectedValue.ToString();// get mã Dịch vụ 
            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuNhomDV_KhoangNgay_BL(fromday, frommonth, fromyear, today, tomonth, toyear, madv);

        }
        // --------------ĐƠN VỊ THU NGÂN-----------------
        // Hàm load Thống kê theo NGÀY lên gridcontrol(Đơn vị thu ngân)
        void ThongKeTheoNgaydvtn()
        {
            int iday = dateNgay_Thongkedoanhthu.DateTime.Day;
            int imonth = dateNgay_Thongkedoanhthu.DateTime.Month;
            int iyear = dateNgay_Thongkedoanhthu.DateTime.Year;
            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuDonvitn_Ngay_BL(iday, imonth, iyear, mapb);
        }
        // Hàm load Thống kê theo THÁNG lên gridcontrol(Đơn vị thu ngân)
        void ThongketheoThangdvtn()
        {
            int month;
            int iYear;
            iYear = Int32.Parse(cmbNam.Text);
            month = Int32.Parse(cmbThang_Thongkedoanhthu.Text);
            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuDonvitn_Thang_BL(month, mapb,iYear);
        }
        // Hàm load Thống kê theo KHOẢNG NGÀY lên gridcontrol(Đơn vị thu ngân)
        void ThongKeKhoangNgaydvtn()
        {
            int fromday = dateTu_Thongkedoanhthu.DateTime.Day;
            int frommonth = dateTu_Thongkedoanhthu.DateTime.Month;
            int fromyear = dateTu_Thongkedoanhthu.DateTime.Year;
            int today = dateDen_Thongkedoanhthu.DateTime.Day;
            int tomonth = dateDen_Thongkedoanhthu.DateTime.Month;
            int toyear = dateDen_Thongkedoanhthu.DateTime.Year;

            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuDonvitn_KhoangNgay_BL(fromday, frommonth, fromyear, today, tomonth, toyear, mapb);

        }
        // -------------TẤT CẢ -----------------
        // Hàm load Thống kê theo NGÀY lên gridcontrol(Tất cả)
        void ThongKeTheoNgayalldvtn()
        {
            int iday = dateNgay_Thongkedoanhthu.DateTime.Day;
            int imonth = dateNgay_Thongkedoanhthu.DateTime.Month;
            int iyear = dateNgay_Thongkedoanhthu.DateTime.Year;
            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuTatca_Ngay_BL(iday, imonth, iyear);
        }
        // Hàm load Thống kê theo THÁNG lên gridcontrol(Tất cả)
        void ThongketheoThangalldvtn()
        {
            int month;
            int iYear;
            iYear = Int32.Parse(cmbNam.Text);
            month = Int32.Parse(cmbThang_Thongkedoanhthu.Text);
            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuTatca_Thang_BL(month,iYear);
        }
        // Hàm load Thống kê theo KHOẢNG NGÀY lên gridcontrol(Tất cả)
        void ThongKeKhoangNgayalldvtn()
        {
            int fromday = dateTu_Thongkedoanhthu.DateTime.Day;
            int frommonth = dateTu_Thongkedoanhthu.DateTime.Month;
            int fromyear = dateTu_Thongkedoanhthu.DateTime.Year;
            int today = dateDen_Thongkedoanhthu.DateTime.Day;
            int tomonth = dateDen_Thongkedoanhthu.DateTime.Month;
            int toyear = dateDen_Thongkedoanhthu.DateTime.Year;
            grdDanhsachbienlai_Thongkedoanhthu.DataSource = hd.ThongkedoanhthuTatca_KhoangNgay_BL(fromday, frommonth, fromyear, today, tomonth, toyear);

        }
        // SỰ KIỆN NHẤN NÚT XEM TRƯỚC 
        private void btnXemtruoc_Thongkedoanhthu_Click(object sender, EventArgs e)
        {
            if (danhdau == 1)// lấy biến đánh dấu của radio ngày
            {
                if (icheck == 1)
                {
                    // Hàm kiểm tra ngày
                    ThongKeTheoNgayndv();
                }
                else
                {   // Hàm kiểm tra ngày
                    if (checkall == false)// trường hợp không phải chọn tất cả
                    {
                        gridColumn3.Caption = "Đơn vị thu ngân";
                        gridColumn3.FieldName = "TenPhongBan";
                        ThongKeTheoNgaydvtn();
                    }
                    else
                    {
                        gridColumn3.Caption = "Đơn vị thu ngân";
                        gridColumn3.FieldName = "TenPhongBan";
                        ThongKeTheoNgayalldvtn();
                    }

                }
            }
            else
            {
                if (danhdau == 2)// lấy biến đánh dấu của radio tháng
                {
                    if (icheck == 1)
                    {
                        // Hàm kiểm tra tháng
                        if (cmbNam.SelectedItem == null)
                        {
                            MessageBox.Show("Vui lòng chọn năm!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            ThongketheoThangndv();
                        }
                        
                    }
                    else
                    {
                        if (checkall == false)// trường hợp không phải chọn tất cả
                        {
                            // Hàm kiểm tra tháng
                            gridColumn3.Caption = "Đơn vị thu ngân";
                            gridColumn3.FieldName = "TenPhongBan";
                            if (cmbNam.SelectedItem == null)
                            {
                                MessageBox.Show("Vui lòng chọn năm!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }
                            else
                            {
                                ThongketheoThangdvtn();
                            }
                            
                        }
                        else
                        {
                            gridColumn3.Caption = "Đơn vị thu ngân";
                            gridColumn3.FieldName = "TenPhongBan";
                            if (cmbNam.SelectedItem == null)
                            {
                                MessageBox.Show("Vui lòng chọn năm!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }
                            else
                            {
                                ThongketheoThangalldvtn();
                            }
                           
                        }
                    }
                }
                else// trường hợp còn lại 
                {
                    if (icheck == 1)
                    {
                        ThongKeKhoangNgayndv();
                    }
                    else
                    {
                        if (checkall == false)// trường hợp không phải chọn tất cả
                        {
                            gridColumn3.Caption = "Đơn vị thu ngân";
                            gridColumn3.FieldName = "TenPhongBan";
                            ThongKeKhoangNgaydvtn();
                        }
                        else
                        {
                            gridColumn3.Caption = "Đơn vị thu ngân";
                            gridColumn3.FieldName = "TenPhongBan";
                            ThongKeKhoangNgayalldvtn();
                        }
                    }
                }
            }
            grdclTongTien.DisplayFormat.FormatType = FormatType.Numeric;
            grdclTongTien.DisplayFormat.FormatString = "{0:0,0} VND";
            // Hàm bắt lỗi thông báo messagebox
            int count = gridView1.RowCount;
            if (count == 0)
            {
                MessageBox.Show("Không có dữ liệu !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                btnInbaocao_Thongkedoanhthu.Enabled = false;
            }
            else
            {
                btnInbaocao_Thongkedoanhthu.Enabled = true;
            }
        }
        // Sự kiện nhấn nút IN THỐNG KÊ
        private void btnInbaocao_Thongkedoanhthu_Click(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex == 0)
            {
                DataTable dt = new DataTable();
                dt = (DataTable)grdDanhsachbienlai_Thongkedoanhthu.DataSource;
                rptDoanhThuNDV rptNDV = new rptDoanhThuNDV();
                rptNDV.DataSource = dt;
                rptNDV.DataMember = "dt";
                rptNDV.ShowPreviewDialog();
            }
            else
            {
                DataTable dt2 = new DataTable();
                dt2 = (DataTable)grdDanhsachbienlai_Thongkedoanhthu.DataSource;
                rptDoanhThuDVTN rptDVTN = new rptDoanhThuDVTN();
                rptDVTN.DataSource = dt2;
                rptDVTN.DataMember = "dt2";
                rptDVTN.ShowPreviewDialog();
            }
            
        }
        // Hàm xử lý combobox thông kê theo
        private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
        {
            string manhomdv = comboBox1.SelectedItem.ToString();// get item trong combobox
            if (manhomdv == "Nhóm dịch vụ")
            {
                // Hàm refresh lại gridview
                for (int i = 0; i < gridView1.RowCount; )
                {
                    gridView1.DeleteRow(i);
                }
                icheck = 1;
                // disnable các group và các button 
                grcThoigianbaocao_Thongkedoanhthu.Enabled = false;
                grcDonvithungan_Thongkedoanhthu.Enabled = false;
                grcNhomDV_Thongkedoanhthu.Enabled = true;
                grbDanhsachhoadon_Thongkedoanhthu.Enabled = true; 
                btnInbaocao_Thongkedoanhthu.Enabled = false;
                // disable chekbox
                // radio false và enable date
                dateNgay_Thongkedoanhthu.Enabled = false;
                rdNgay_Thongkedoanhthu.Checked = false;
                cmbThang_Thongkedoanhthu.Enabled = false;
                cmbNam.Enabled = false;
                rdThang_Thongkedoanhthu.Checked = false;
                dateTu_Thongkedoanhthu.Enabled = false;
                dateDen_Thongkedoanhthu.Enabled = false;
                // làm trắng date
                dateNgay_Thongkedoanhthu.Text = "";
                cmbThang_Thongkedoanhthu.Text = "";
                dateTu_Thongkedoanhthu.Text = "";
                dateDen_Thongkedoanhthu.Text = "";
            }
            else
            {
                if (manhomdv == "Đơn vị thu ngân")
                {
                    // Hàm refresh lại gridview
                    for (int i = 0; i < gridView1.RowCount; )
                    {
                        gridView1.DeleteRow(i);
                    }
                    icheck = 2;
                    cmbNhomDichVu_Thongkedoanhthu.SelectedItem = null;// xét combobox thành null
                    // disnable các group và các button 
                    grcNhomDV_Thongkedoanhthu.Enabled = false;
                    grcDonvithungan_Thongkedoanhthu.Enabled = true;
                    grbDanhsachhoadon_Thongkedoanhthu.Enabled = true;
                    grcThoigianbaocao_Thongkedoanhthu.Enabled = false;
                    btnInbaocao_Thongkedoanhthu.Enabled = false;
                    // radio false và enable date
                    dateNgay_Thongkedoanhthu.Enabled = false;
                    rdNgay_Thongkedoanhthu.Checked = false;
                    cmbThang_Thongkedoanhthu.Enabled = false;
                    cmbNam.Enabled = false;
                    rdThang_Thongkedoanhthu.Checked = false;
                    dateTu_Thongkedoanhthu.Enabled = false;
                    dateDen_Thongkedoanhthu.Enabled = false;
                    // làm trắng date
                    dateNgay_Thongkedoanhthu.Text = "";
                    cmbThang_Thongkedoanhthu.Text = "";
                    dateTu_Thongkedoanhthu.Text = "";
                    dateDen_Thongkedoanhthu.Text = "";
                }
            }
        }
        // Hàm load colum STT lên gridview
        private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            if (e.Column == gridColumn7)
            {
                e.DisplayText = Convert.ToString(e.RowHandle + 1);
            }
        }
        // xử lý hàm để hiển thị theo thứ tự
        private void cmbNhomDichVu_Thongkedoanhthu_SelectionChangeCommitted(object sender, EventArgs e)
        {
            // xử lý hàm để hiển thị theo thứ tự
            grcThoigianbaocao_Thongkedoanhthu.Enabled = true;
            madv = cmbNhomDichVu_Thongkedoanhthu.SelectedValue.ToString();

        }
        // Hàm xử lý combobox đơn vị thu ngân
        private void cmbDonvithungan_Thongkedoanhthu_SelectionChangeCommitted(object sender, EventArgs e)
        {
            checkall = false;
            grcThoigianbaocao_Thongkedoanhthu.Enabled = true;
            btnInbaocao_Thongkedoanhthu.Enabled = false;
            string madvtn = cmbDonvithungan_Thongkedoanhthu.SelectedItem.ToString();
            if (madvtn == "Đơn vị thu ngân A")
            {
                mapb = "TN001";
            }
            if (madvtn == "Đơn vị thu ngân B")
            {
                mapb = "TN002";
            }
            if (madvtn == "Đơn vị thu ngân C")
            {
                mapb = "TN003";
            }
            if (madvtn == "Tất cả")
            {
                checkall = true;
            }
        }

    }
}
